/*
 * TeacherNameList.h
 *
 *  Created on: 11 May 2010
 *      Author: Savramis Sartios
 */

#ifndef TEACHERNAMELIST_H_
#define TEACHERNAMELIST_H_

#include "ITeacherNameList.h"

/**
 * Η κλάση αυτή περιέχει κωδικούς κι ονόματα των καθηγητών
 */
class TeacherNameList : public ITeacherNameList{
public:
	TeacherNameList();
	virtual ~TeacherNameList();
	/**
	* Επιστρέφει έναν Iterator για το αντικείμενο που έχει τον κωδικό του καθηγητή και το όνομά του
	* \return  ITeacherNameListIterator
	*/
	virtual ITeacherNameIterator *	getIterator();

	/**
	* Επιστρέφει το πλήθος των καθηγητών που έχουν αποθηκευτεί μέσα στο αντικείμενο
	* \retutn int τον αριθμό των καθηγητών
	*/
	virtual int count()const;

	/**
	* Πρόσθετει στο αντικείμενο ένα καθηγητή με κωδικό καθηγητή teacherCode κι όνομα teacherName
	* \param teacherCode ο κωδικός του καθηγητή
	* \param teacherName το όνομα του καθηγητή
	* \return true εάν αποθηκεύτηκε σωστά
	*/
	virtual bool add(const string *teacherCode,const string * teacherName);

	/**
	 * Επιστρέφει την αρχή της δομής
	 * \return iterator
	 */
	virtual map<string,string>::iterator getStart();

	virtual string 	getTeacherName(const string *teacherCode);
private:
	map<string,string> teachers_;
	map<string,string>::iterator it_;
};

#endif /* TEACHERNAMELIST_H_ */
